#pragma once
#include"hash.h"
namespace ccs
{
	template<class K>
	struct KofT
	{
		const K& operator()(const K& x)
		{
			return x;
		}
	};
	template<class K>
	class set
	{
	public:
		typedef typename cc::Iterator<K, K, K&, K*, KofT<K>, cc::HashFunc<K>> iterator;
		pair<iterator, bool> insert(const K& x)
		{
			return Table.insert(x);
		}
		iterator begin()
		{
			return Table.begin();
		}
		iterator end()
		{
			return Table.end();
		}
		iterator find(const K& x)
		{
			return Table.find(x);
		}
	private:
		cc::HashTable<K, K, KofT<K>, cc::HashFunc<K>> Table;
	};
}
